return NULL;
}
+GdkMonitor *
+gdk_wayland_display_get_monitor_for_output (GdkDisplay *display,
+ struct wl_output *output)
+{
+ return (GdkMonitor *)get_monitor_for_output (GDK_WAYLAND_DISPLAY (display), output);
+}
+
static void
gdk_wayland_display_remove_output (GdkWaylandDisplay *display_wayland,
guint32 id)
struct wl_output *output);
struct wl_output *gdk_wayland_display_get_wl_output (GdkDisplay *display,
int monitor_num);
+GdkMonitor *gdk_wayland_display_get_monitor_for_output (GdkDisplay *display,
+ struct wl_output *output);
void _gdk_wayland_surface_set_grab_seat (GdkSurface *surface,
GdkSeat *seat);
{
GdkSurface *surface = GDK_SURFACE (data);
GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
+ GdkDisplay *display = gdk_surface_get_display (surface);
+ GdkMonitor *monitor;
GDK_DISPLAY_NOTE (gdk_surface_get_display (surface), EVENTS,
g_message ("surface enter, surface %p output %p", surface, output));
impl->display_server.outputs = g_slist_prepend (impl->display_server.outputs, output);
gdk_wayland_surface_update_scale (surface);
+
+ monitor = gdk_wayland_display_get_monitor_for_output (display, output);
+ gdk_surface_enter_monitor (surface, monitor);
}
static void
{
GdkSurface *surface = GDK_SURFACE (data);
GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
+ GdkDisplay *display = gdk_surface_get_display (surface);
+ GdkMonitor *monitor;
GDK_DISPLAY_NOTE (gdk_surface_get_display (surface), EVENTS,
g_message ("surface leave, surface %p output %p", surface, output));
if (impl->display_server.outputs)
gdk_wayland_surface_update_scale (surface);
+
+ monitor = gdk_wayland_display_get_monitor_for_output (display, output);
+ gdk_surface_leave_monitor (surface, monitor);
}
static const struct wl_surface_listener surface_listener = {